1. Field of Example Embodiments of the Invention
The present invention is concerned with data transmission, and more particularly to the measurement of capacity. Although of general application, a context of particular interest is multicast distribution, that is, where that a given signal feed (or recording) is to be distributed to a number of user terminals or receivers simultaneously. Commonly such material is distributed over digital telecommunications networks, for example, the internet or other internet protocol-based network.
2. Description of Related Art
The usual arrangement is that a source computer (the server) transmits the signals with a multicast address as the destination. A terminal (or client) that is to receive the signals corresponding to that multicast is said to join the corresponding multicast group: that is, the client's address is added to a list of group members, and routers within the network direct all packets which are addressed to that multicast address to all the member clients. In such circumstances the bit rate that can satisfactorily be received will vary from user to user, according, for example to the type of connection he has, and moreover is likely to vary with time, depending on the prevailing level of network congestion.
One method of accommodating this is by the use of layered coding (also called scalable coding). Here the idea is that one generates two bit-streams, one—the base layer—carrying a low-quality signal, and a second—the enhancement layer—carrying at least part of the information that is missing from the base layer, so that a receiver that receives both layers can reconstruct a high-quality signal by combining the information received in both layers. More than two layers can be used, in which case each successive enhancement layer carries information that is denied to those receiving only the lower layer(s). A receiver can then be sent only as many layers as the currently available link between the transmitter and the receiver can comfortably handle. In the event of network congestion, the number of layers sent to the particular receiver can be reduced by ceasing transmission of the highest layer of those that were previously being sent. Layered coding is often used for the transmission of video signals, for audio signals, or both. In principle however it can be applied to any type of material for which a signal of reduced bit-rate (and, hence, in some sense, reduced resolution) is worthwhile receiving.
For discussion of layered video coding, see M. Ghanbari, Video Coding—an introduction to standard codecs, IEE, 1999, pp. 131-150.
For discussion of layered multicast, see S. McCanne, ‘Receiver driven layered multicast’, Proceedings of SIGCOMM 96, Stanford. Calif. August 1996, and M. Nilsson, D. Dalby and J. O'Donnell, ‘Layered Audiovisual Coding for Multicast Distribution on IP networks’, Packet Video Workshop 2000, Cagliari, Italy.
A typical method of multicasting audiovisual material is that the audiovisual source multicasts layered audio and video over the IP network (internet). Each layer of audio and each layer of video is sent to a separate multicast address. Each client makes its own decision of how many layers to receive, and joins the appropriate multicast groups. The content would have previously been advertised, using for example, SDP (session description protocol), which would include the bit rates and the addresses of the different layers.
One difficulty with layered multicasting is that it is non-optimum for a client terminal which has a data-receiving capacity which falls just short of that needed to support a particular layer, as it must then drop down to the layer below effectively “wasting” some of the capacity. However Vickers et al (“Adaptive Multicast of Multi-Layered Video: Rate-Based and Credit-Based Approaches”, IEEE 1998) have proposed using network feedback to dynamically adjust both the number of video layers it generates and the rate at which each layer is generated). The amount of bandwidth available is measured by a feedback packet which transverses the network and each network node marks the packet to indicate the amount of bandwidth available. A similar method, based on quality of voice measurements, is described by Zhao et al “Dynamic Quality of Session Control of Real-time Video Multicast” (1997 IEEE International Conference on Intelligent Processing Systems).
The Vickers et al method has the disadvantage that the network nodes have to be modified to provide the feedback. An alternative feedback method is discussed by
Nilsson et al in the above-referenced paper, where the client determined what network capacity was available between it and the server by performing so-called join experiments, where the client randomly decides to join a higher layer, and then watches to see if the result is successful reception of the higher rate or packet loss across all layers. While this is reasonably satisfactory for a single client—some packet loss occurring when unsuccessful join experiments are conducted—it gets worse as more clients are involved, and make their own join experiments—as clients unaware of the join experiment may be affected by the packet loss resulting from an unsuccessful join experiment, and may incorrectly conclude that their network capacity from the server has reduced and so must reduce the number of layers received.